折れ線グラフ
Contents
6. 折れ線グラフ¶
6.1. 概要¶
6.2. Plotlyによる作図方法¶
6.3. MADB Labを用いた作図例¶
import pandas as pd
import plotly.express as px
import warnings
warnings.filterwarnings('ignore')
# 前処理の結果,以下に分析対象ファイルが格納されていることを想定
PATH_DATA = '../../data/preprocess/out/episodes.csv'
# Jupyter Book用のPlotlyのrenderer
RENDERER = 'plotly_mimetype+notebook'
# 連載週数の最小値
MIN_WEEKS = 5
# 抽出するマンガ作品数
N_CNAMES = 4
def show_fig(fig):
"""Jupyter Bookでも表示可能なようRendererを指定"""
fig.update_layout(margin=dict(t=50, l=25, r=25, b=25))
# 凡例でグラフが潰れないよう調整
fig.update_layout(legend={
'yanchor': 'top',
'xanchor': 'left',
'x': 0.01, 'y': 0.99})
fig.show(renderer=RENDERER)
df = pd.read_csv(PATH_DATA)
6.4. 各話の掲載日と掲載位置¶
mcnames = sorted(df['mcname'].unique())
for mcname in mcnames:
df_tmp = df[df['mcname']==mcname].reset_index(drop=True)
df_cname = \
df_tmp.value_counts('cname').reset_index(name='weeks')
df_cname = \
df_cname.sort_values(
'weeks', ascending=False, ignore_index=True)
cnames = df_cname['cname'][:N_CNAMES].values
df_plot = df_tmp[df_tmp['cname'].isin(cnames)].\
reset_index(drop=True)
fig = px.line(
df_plot, x='datePublished', y='pageStartPosition',
color='cname', title=f'{mcname}の長期連載作品',
hover_data=['epname'], height=500)
fig.update_xaxes(title='掲載日')
fig.update_yaxes(title='掲載位置(0:先頭,1:末尾)')
fig.update_layout(hovermode='x unified')
fig.update_traces(mode='markers+lines')
show_fig(fig)